iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 23
0
Modern Web

Nest.js framework 30天初探系列 第 23

Nestjs framework 30天初探:Day23 Redis

  • 分享至 

  • xImage
  •  

Redis

https://ithelp.ithome.com.tw/upload/images/20171227/20107195NfJEEnIkxB.png

  1. 這次請直接載專案,架構大致雷同,差別僅在users.service.ts。
  2. UsersServices程式碼如下。
    src/app/Users/users.service.ts
'use strict';

import { Component, Inject } from '@nestjs/common';
import { createClient } from 'redis';
@Component()
export class UsersServices {
    //第一個參數給定port,第二個參數給定host
    private readonly client = createClient(6379, "127.0.0.1");

    constructor() { }

    //查詢單筆
    public async findById(ID): Promise<any> {
        return new Promise((resolve, reject) => {
            this.client.hgetall(ID, function (error, res) {
                if (error) {
                    reject(error);
                } else {
                    resolve(res);
                }
            });
        })
    }
    //新增
    public async create(users: any): Promise<any> {
        return new Promise((resolve, reject) => {
            this.client.hmset(`${users.ID}`, users, function (error, res) {
                if (error) {
                    reject(error);
                } else {
                    resolve(res);
                }
            });
        })
    }
    //更新
    public async update(ID: number, newValue: any): Promise<any> {
        return new Promise((resolve, reject) => {
            this.client.hmset(`${ID}`, newValue, function (error, res) {
                if (error) {
                    reject(error);
                } else {
                    resolve(res);
                }
            });
        })
    }
    //刪除
    public async delete(ID: number): Promise<any> {
        return new Promise((resolve, reject) => {
            this.client.del(`${ID}`, function (error, res) {
                if (error) {
                    reject(error);
                } else {
                    resolve(res);
                }
            });
        })
    }
}

最外層沒有this.client.select(),預設會是操作db0。
新增
對http://localhost:3000/users 做POST請求,結果如下。
https://ithelp.ithome.com.tw/upload/images/20171227/20107195PcEFkBAM6v.png
查詢單筆
對http://localhost:3000/users/1 做GET請求,結果如下。
https://ithelp.ithome.com.tw/upload/images/20171227/201071952gSLmRe1lh.png
修改單筆
對http://localhost:3000/users/1 做PATCH請求,結果如下。
https://ithelp.ithome.com.tw/upload/images/20171227/201071952AJcBkAwdM.png
刪除單筆
對http://localhost:3000/users/1 做DELETE請求,結果如下。
https://ithelp.ithome.com.tw/upload/images/20171227/20107195MUn1DuOubw.png
筆者目前還沒看到對Redis的ORM或Entity的東西可以用,所以就簡單實作功能而已。這次的實作比較像是在寫一般的JavaScript,少了Model就少了好用的型態檢查,加上nestjs也沒有對redis生好用的API,稍微可惜了點。


上一篇
Nestjs framework 30天初探:Day22 MongoDB
下一篇
Nestjs framework 30天初探:Day24 Mixin Class
系列文
Nest.js framework 30天初探30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言